package com.loong.android.views.utils;

import android.view.ViewGroup;

public class ViewGroupImpl extends ViewImpl {

    private final ViewGroup view;

    public ViewGroupImpl(ViewGroup view) {
        super(view);
        this.view = view;
    }

    /**
     * 从父布局中删除自身及自身的子布局
     */
    @Override
    public void removeSelf() {
        view.removeAllViews();
        ViewGroup v = (ViewGroup) view.getParent();
        if (v != null) v.removeView(view);
    }

    /**
     * 清空子布局
     */
    public void clearChildViews() {
        view.removeAllViews();
    }

    /**
     * 删除指定位置上的子布局
     *
     * @param index 位置索引
     */
    public void removeChildView(int index) {
        view.removeViewAt(index);
    }

    /**
     * 从指定位置开始删除指定数量的子布局
     *
     * @param startIndex 起始位置
     * @param size       欲删除的子布局数量
     */
    public void removeChildView(int startIndex, int size) {
        view.removeViews(startIndex, size);
    }

    /**
     * 删除子布局
     *
     * @param childView 子布局对象
     */
    public void removeChildView(android.view.View childView) {
        view.removeView(childView);
    }

    /**
     * 取子布局
     *
     * @param index 子布局索引
     * @return 返回子布局对象
     */
    public android.view.View getChildView(int index) {
        return view.getChildAt(index);
    }

    /**
     * 添加子布局
     *
     * @param childView 子布局对象
     */
    public void addChildView(android.view.View childView) {
        view.addView(childView);
    }

    /**
     * 将子布局插入到指定的位置
     *
     * @param childView 子布局对象
     * @param index     位置索引
     */
    public void addChildView(android.view.View childView, int index) {
        view.addView(childView, index);
    }

    /**
     * 取子布局总数
     */
    public int getChildViewSize() {
        return view.getChildCount();
    }


}
